/*
 * CodeProcessGenerator.java	 
 *
 * Copyright 2012 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 07/10/12, 11:23:38 AM
 */
package com.ufps.cuatro.util.generadores.codeobject;

import java.util.ArrayList;

/**
 * <i><b>CodeProcessGenerator:</b></i><p>Define los Métodos que se requieren
 * para la implementación de los Clases en la Generación del Código Fuente.</p> 
 * 
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 07/10/12
 */
public interface CodeProcessGenerator {
    
    /**
     * Define las Sentencias de Importación de clases y/ó Paquete que hacen parte
     * de la definición de la Clase.
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseImport(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * Define las Propiedades de Instacia de la Clase.
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseFieldDefinitionInstance(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * Define las Propiedades de la Clase.
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseFieldDefinitionClass(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * Define las Propiedades Constantes de la Clase.
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseFieldDefinitionConstant(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * 
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseFieldInitializationInstance(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * 
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseFieldInitializationClass(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * 
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseFieldInitializationProperties(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * 
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseFieldInitializationGridBagConstraints(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * 
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseMethodDefinitionEvent(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * 
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseMethodImplementEvent(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * 
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseMethodImplementFunctionEvent(ArrayList<CodeContextLine> objSourceLinesCode);    
    
    /**
     * Define los Métodos Set para las Propiedades de la Clase.
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseMethodImplementFunctionSet(ArrayList<CodeContextLine> objSourceLinesCode);    
    
    /**
     * Define los Métodos Get para las Propiedades de la Clase.
     * @param objSourceLinesCode Colección de Lineas que representan el Código Fuente Generado.
     */
    public void generateSourceCodeSyntaxFaseMethodImplementFunctionGet(ArrayList<CodeContextLine> objSourceLinesCode);    
    
    /**
     * 
     * @param objSourceLinesCode
     */
    public void generateSourceCodeSyntaxjComponentIntoTab(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * 
     * @param objSourceLinesCode
     */
    public void generateSourceCodeSyntaxModelAsociateButtonOk(ArrayList<CodeContextLine> objSourceLinesCode);
    
    /**
     * 
     * @param objSourceLinesCode
     */
    public void generateSourceCodeSyntaxModelAsociateButtonCancel(ArrayList<CodeContextLine> objSourceLinesCode);    
    
    public void generateSourceCodeSyntaxFaseMethodDefinitionMenuEvent(ArrayList<CodeContextLine> objSourceLinesCode);
    
    public void generateSourceCodeSyntaxFaseMethodImplementMenuEvent(ArrayList<CodeContextLine> objSourceLinesCode);
    
    public void generateSourceCodeSyntaxFaseMethodImplementMenuFunctionEvent(ArrayList<CodeContextLine> objSourceLinesCode);
    
    public void generateSourceCodeSyntaxFaseMethodImplementMenuParentEvent(ArrayList<CodeContextLine> objSourceLinesCode);
    
    
}
